作者:shadow | 来源:互联网 | 2023-10-11 19:20
之前,我们已连载翻译了RebootingWebofTrust组织在RWOTIX—Prague,2019会议上的论文《AliceAttemptstoAbuseaVeri
之前,我们已连载翻译了 Rebooting Web of Trust 组织在 RWOT IX — Prague, 2019会议上的论文《Alice Attempts to Abuse a Verifiable Credential》,了解了 Alice 是如何企图对其处方进行作恶的,本期我们将连载最后一部分,向大家阐述作为验证者要如何防止遭受恶意证书持有者的欺诈。
上一期请参考:科普 | 凭证真假难辨,去中心化身份体系有妙招(二)
原文:https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/alice-attempts-abuse-verifiable-credential.md
作者:P. Dingle, S. Hammann, D. Hardman, C. Winczewski, S. Smit
验证者的最佳实践
在本节中,我们将从 Alice 的故事中跳出来,描述通常验证者应遵循的最佳做法,以防止遭受恶意证书持有者的欺诈。我们将大致按照凭证验证过程的顺序来阐述相应的要点。
图 | 网络
-
验证者不应允许其他人来确认验证过程(或其一部分)。
-
持有人进行的验证不提供任何保证;持有人可以使用欺诈性的软件,使其看起来好像验证成功了。
-
验证者必须明确说明可接受的发行者和可接受的凭证模式,并且必须确认展示的凭证符合这些要求。例如,在测试到期时间时,不得将月/日/年的编码模式与日/月/年的编码模式相混淆。
-
使用第三方验证者会使验证者受到影响,任何人可能会和第三方验证者勾结,或者第三方验证本身在存在漏洞。
-
验证者应将凭证持有者提供的数据视为不可信输入,并执行适当的输入验证,而不是假定这些数据拥有正确的凭证格式。
-
验证者必须始终使用发行者的公钥进行签名验证,或正确验证提供的零知识证明。
-
需要特别说明的是,忽略此检查绝不是使业务保持正常运行的一个可接受备选项,例如,当连接中断时忽略该检查。凭证欺诈所产生的潜在成本可能比短暂中断业务活动所产生的潜在成本高得多。
-
虽然短时间内缓存发行者的公钥是可以接受的,但作为最佳实践,此缓存时间应短一些,以防止使用旧公钥进行签名验证(例如,由于旧密钥泄漏,发行者可能已更换密钥)。
最佳实践列表并不详尽。毫无疑问,更通用的建议是适当的。另外,特定的最佳实践在特定行业或特定证明环境中可能很重要。
生存能力
我们的大多数讨论都采用了传统的网络安全思想,强调漏洞及其对策。但是,军事人员采用了以任务生存能力为基础的观点。在这种方法中,问题不是“ 我们如何防止攻击?” ,而是“ 面对活跃的攻击,我们如何完成我们的任务?”。在之前的 Alice 药房场景中,药房的任务是根据法律/法规以可接受的方式按方配药,这启发我们考虑影响结果的相互依存的三个因素:
-
易受攻击性(攻击的可能性)
-
脆弱性(给定一个攻击的情况下,损害的可能性)
-
可恢复性(在给定损害的情况下,恢复的简便性和完全度)
上面列出的大多数对策可解决脆弱性的问题,但也有例外。生物特征识别和 link secret bond 机制不会直接阻碍凭证销售(降低脆弱性);相反,它们通过破坏动机以减少被攻击的可能性。
该类技术可以在凭证场景中有广泛的应用。举个例子,爱沙尼亚的在线投票系统允许每个公民随意投票多次,但只计算最后一次投票。这就破坏了贿赂买选票的任何动机,因为被贿赂的公民随后可以再次投(自己真正想要的)票,从而消除了欺诈的影响并减少了被攻击的可能性。
图 | 网络
同样,可恢复性的问题也值得深思。如果凭证欺诈能被快速自动地检测出来,并进行撤消和惩罚,那么即使最初的欺诈相对容易,也能说明某些证明场景的保护是到位的。例如,在我们的离线验证场景中,为了快速分发救命药品,可以适当放松对签名的实时性保证,但是必须谨慎权衡恢复的时间和自动化性质。信任框架的存在可以确保已经仔细评估并公开记录这些折衷方案。
我们认为,一个成熟且安全的可验证凭证生态系统应包括所有这三个维度相关的周全决策,而不仅能脆弱性问题这一种。
总结
我们可以看到 Alice 修改处方药或从其处方药中获利的尝试并未成功。在每个步骤中,她试图篡改凭证或以超出预期的凭证欺诈行为都被检测出来,并没有获得成功。药房充当了验证者,通过遵循最佳实践,确保了系统内的完整性并显著降低了风险。
值得注意的是,尽管本文试图从持有者的角度确定许多可能的攻击方式,但这绝不是针对当前或未来攻击的详尽描述。验证关键点的准确性和完整性的适当标准根据使用情况而有所不同。作者建议,验证的任何实施者也应进行全面的风险分析,并根据他们的特定需求进行分析。